uqmid: ubus: check for empty strings for configure arguments
authorAlexander Couzens <[email protected]>
Tue, 13 Aug 2024 11:11:25 +0000 (13:11 +0200)
committerDavid Bauer <[email protected]>
Sat, 31 May 2025 20:41:00 +0000 (22:41 +0200)
Allow to pass empty string as argument via ubus

Signed-off-by: Alexander Couzens <[email protected]>
uqmid/ubus.c

index 0443794cfa63f32821f4d8de28bc9b075a8c99e1..6a69579525b66ed8a9d8cde53b8bd99cdbf7cecc 100644 (file)
@@ -247,6 +247,7 @@ static int modem_configure(struct ubus_context *ctx, struct ubus_object *obj, st
 {
        struct modem *modem = container_of(obj, struct modem, ubus);
        struct blob_attr *tb[__CFG_MAX];
+       char *value;
        int ret;
 
        /* prevent mixing previous configure calls */
@@ -254,12 +255,16 @@ static int modem_configure(struct ubus_context *ctx, struct ubus_object *obj, st
        blobmsg_parse(modem_configure_policy, __CFG_MAX, tb, blob_data(msg), blob_len(msg));
        if (tb[CFG_APN]) {
                TALLOC_FREE(modem->config.apn);
-               modem->config.apn = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
+               value = blobmsg_get_string(tb[CFG_APN]);
+               if (value && strlen(value))
+                       modem->config.apn = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
        }
 
        if (tb[CFG_PIN]) {
                TALLOC_FREE(modem->config.pin);
-               modem->config.pin = talloc_strdup(modem, blobmsg_get_string(tb[CFG_APN]));
+               value = blobmsg_get_string(tb[CFG_PIN]);
+               if (value && strlen(value))
+                       modem->config.pin = talloc_strdup(modem, blobmsg_get_string(tb[CFG_PIN]));
        }
 
        if (tb[CFG_ROAMING]) {